import java.util.Random;
import java.util.Scanner;

public class 逻辑控制 {
    public static void main1(String[] args) {//输出
        System.out.println(100);
        System.out.print(10);
        System.out.printf("%d\n", 10);
    }

    public static void main2(String[] args) {//输入
        //一个类里一次只能主线执行一个方法，一个main方法，main方法是程序入口，从main里其它方法调入才要再进入去执行掉
        Scanner scan1 = new Scanner(System.in);//用类创建一个变量,输入流变量
        int age = scan1.nextInt();//变量. ->用变量调用方法 //scan1.nextInt()输入操作,输入的整型安排age来接收
        System.out.println("年龄：" + age);

        scan1.nextLine();//消输入缓冲区的一个回车，没有安排变量来接收

        String name = scan1.nextLine();//输入一行字符串 //nextLine读入一行截内容
        System.out.println("姓名：" + name);

        float salary = scan1.nextFloat();//输入一个小数
        System.out.println("工资：" + salary);
        scan1.close();//关闭流变量

    }

    public static void main3(String[] args) {
        Scanner scan2 = new Scanner(System.in);
        while (scan2.hasNextInt()) {//查看下次从输入缓冲区中输入读取进来的数据是否是整数，仅做查看不取掉输入缓冲区内容（方法返回值是布尔值）
            int age = scan2.nextInt();
            System.out.println(age);
        }
    }

    public static void main4(String[] args) {//输出素数
        for (int n = 1; n <= 100; n++) {
            if (n == 1) {
                n++;
                continue;//contniue前一定要有++
            }
            int i;
            for (i = 2; i <= Math.sqrt(n); i++) {
                if (n % i == 0) {
                    break;
                }
            }
            if (i > Math.sqrt(n)) {
                System.out.println(n + "是素数");
            }
        }
    }

    public static void main5(String[] args) {//输出闰年
        for (int year = 1000; year < 2000; year++) {
            if (year % 100 == 0) {
                if (year % 400 == 0) {
                    System.out.println(year + " is 闰年");
                }
            } else {
                if (year % 4 == 0)
                    System.out.println(year + " is 闰年");
            }
        }
    }

    public static void main6(String[] args) {//九九乘法表
        for (int i = 0; i < 10; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.printf("%d*%d=%d ", j, i, j * i);
            }
            System.out.println();
        }
    }

    public static void main7(String[] args) {
        System.out.println("数据" + 2 * 3);//+号是将两边的结果连接成字符串
    }

    public static void main8(String[] args) {//求两个正整数的最大公约数
        Scanner scan = new Scanner(System.in);
        int x = scan.nextInt();
        int y = scan.nextInt();//表达式的结果都是常量
        int miner = x > y ? x : y;
        int MaxToGether = 1;
        while (miner > 0) {
            if (x % miner == 0 && y % miner == 0) {
                MaxToGether = miner;
                break;
            }
            miner--;
        }
        System.out.println("最大公约数是" + MaxToGether);
    }

    public static void main9(String[] args) {//输出水仙花数
        for (int i = 1; i < 999999; i++) {
            int count = 0;
            int tmp = i;
            while (tmp != 0) {
                tmp /= 10;
                count++;
            }
            tmp = i;
            int sum = 0;
            while (tmp != 0) {
                sum += Math.pow(tmp % 10, count);
                tmp /= 10;
            }
            if (sum == i) {
                System.out.println(i);
            }
        }
    }

    public static void main10(String[] args) {//求一个数的二进制1的个数
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int count = 0;
        while (n != 0) {
            n &= (n - 1);//n&(n-1)，每与一次，表达式结果相比n的二进制序列都会少个1
            count++;
        }
        System.out.println(count);
    }

    public static void main11(String[] args) {//猜数字游戏

        Scanner scan = new Scanner(System.in);//开用户的输入流

        Random random = new Random();//开随机数的输入流
        int RanNum = random.nextInt(101);//[0,101)
        //50-100的随机数  random.nextInt(51)+50 -> [0,51) + 50 = [50,101)

        while (true) {
            System.out.println("请输入你要猜的数字");
            int num = scan.nextInt();
            if (num < RanNum) {
                System.out.println("猜小了");
            } else if (num == RanNum) {
                System.out.println("猜对了");
                break;
                //往上找对第一个
            } else {
                System.out.println("猜大了");
            }
        }
    }
}